home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / if_eql.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  2KB  |  85 lines

  1. /*
  2.  * Equalizer Load-balancer for serial network interfaces.
  3.  *
  4.  * (c) Copyright 1995 Simon "Guru Aleph-Null" Janes
  5.  * NCM: Network and Communications Management, Inc.
  6.  *
  7.  *
  8.  *    This software may be used and distributed according to the terms
  9.  *    of the GNU General Public License, incorporated herein by reference.
  10.  * 
  11.  * The author may be reached as simon@ncm.com, or C/O
  12.  *    NCM
  13.  *    Attn: Simon Janes
  14.  *    6803 Whittier Ave
  15.  *    McLean VA 22101
  16.  *    Phone: 1-703-847-0040 ext 103
  17.  */
  18.  
  19. #ifndef _LINUX_IF_EQL_H
  20. #define _LINUX_IF_EQL_H
  21.  
  22. #define EQL_DEFAULT_SLAVE_PRIORITY 28800
  23. #define EQL_DEFAULT_MAX_SLAVES     4
  24. #define EQL_DEFAULT_MTU            576
  25. #define EQL_DEFAULT_RESCHED_IVAL   100
  26.  
  27. #define EQL_ENSLAVE     (SIOCDEVPRIVATE)
  28. #define EQL_EMANCIPATE  (SIOCDEVPRIVATE + 1)
  29.  
  30. #define EQL_GETSLAVECFG (SIOCDEVPRIVATE + 2)
  31. #define EQL_SETSLAVECFG (SIOCDEVPRIVATE + 3)
  32.  
  33. #define EQL_GETMASTRCFG (SIOCDEVPRIVATE + 4)
  34. #define EQL_SETMASTRCFG (SIOCDEVPRIVATE + 5)
  35.  
  36. #ifdef __KERNEL__
  37.  
  38. #include <linux/timer.h>
  39. #include <linux/spinlock.h>
  40.  
  41. typedef struct slave {
  42.     struct list_head    list;
  43.     struct net_device    *dev;
  44.     long            priority;
  45.     long            priority_bps;
  46.     long            priority_Bps;
  47.     long            bytes_queued;
  48. } slave_t;
  49.  
  50. typedef struct slave_queue {
  51.     spinlock_t        lock;
  52.     struct list_head    all_slaves;
  53.     int            num_slaves;
  54.     struct net_device    *master_dev;
  55. } slave_queue_t;
  56.  
  57. typedef struct equalizer {
  58.     slave_queue_t        queue;
  59.     int            min_slaves;
  60.     int            max_slaves;
  61.     struct net_device_stats    stats;
  62.     struct timer_list    timer;
  63. } equalizer_t;  
  64.  
  65. #endif /* __KERNEL__ */
  66.  
  67. typedef struct master_config {
  68.     char    master_name[16];
  69.     int    max_slaves;
  70.     int    min_slaves;
  71. } master_config_t;
  72.  
  73. typedef struct slave_config {
  74.     char    slave_name[16];
  75.     long    priority;
  76. } slave_config_t;
  77.  
  78. typedef struct slaving_request {
  79.     char    slave_name[16];
  80.     long    priority;
  81. } slaving_request_t;
  82.  
  83.  
  84. #endif /* _LINUX_EQL_H */
  85.